package cn.itsource.ymjs.doc;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;

/**
 * indexName表示索引库名字,type表示索引类型
 * 课程 name，forUser gradeName tenantName ...
 * 课程类型  courseTypeId courseTypeName
 * 影响信息  price priceOld charge
 */
@Document(indexName = "ymjs" , type = "course")
@Data
public class CourseDoc {
    //PUT  /hrmtest/coursetest/1
    /**
     * 文档对象的ID就是该字段的值
     */
    //PUT  /hrmtest/coursetest/1
    @Id //文档对象的ID就是该字段的值
    private Long id;
    //课程名称
    @Field
    private String name;
    //价格
    @Field(type = FieldType.Float)
    private Float price;
    //原价
    @Field(type = FieldType.Float)
    private Float priceOld;
    //适用人群
    @Field
    private String forUser;
    //课程类型
    @Field(type = FieldType.Long)
    private Long courseTypeId;

    @Field
//    @Field(type = FieldType.Keyword)
    private String courseTypeName;

    //等级名
    @Field
    private String gradeName;

    //图片
    @Field(type = FieldType.Keyword,index = false)
    private String pic;

    //销量
    @Field(type = FieldType.Integer)
    private Integer saleCount = 0;

    //浏览量
    @Field(type = FieldType.Integer)
    private Integer viewCount = 0;

    //评论数
    @Field(type = FieldType.Integer)
    private Integer commentCount = 0;

    //是否收费
    @Field(type = FieldType.Integer)
    private Integer charge;

    //上线时间
    @Field(type = FieldType.Date)
    private Date onlineTime;

    /**
     * 所有关键字要作用字段 假的，仅仅是用来搜索用的. 如果不这样做要做很多组合查询
     * analyzer表示分词器类型 searchAnalyzer表示检索分词器类型
     */
    // 因为要使用高亮,高亮字段要查询出来,所以不能用all
//    @Field(type = FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_max_word")
//    private String all;
//
//    public String getAll() {
//        return name+" "+forUser+" "+gradeName+" "+tenantName+" "+courseTypeName;
//    }
//
//    public void setAll(String all) {
//        this.all = all;
    }